export default {
  // 开启命名空间
  namespaced: true,
  // state 暂存共享数据的地方
  state: {
    username: '??'
  },
  // mutations里面存放的是修改state数据的函数，也只有mutations里面的函数可以修改
  mutations: {
    changeUsername (state, payload) {
      state.username = payload.username
    },
    change (state) {
      state.username = '永远的jack'
    }
  },
  // actions里面放的是触发mutations的函数，他还能执行异步操作
  actions: {
    // 第一个参数是对象，默认的。里面有个commit属性。
    triggerChangeUname ({ commit }, payload) {
      console.log(payload)
      setTimeout(() => {
        commit('changeUsername', payload)
      }, 1000)
    }
  },
  // getters 类似于计算属性，根据state中的值的变化计算得到一个新的属性
  getters: {
    wrappedUname (state) {
      // 依赖state中的值的变化而变化
      return '❤️' + state.username + '❤️'
    }
  }
}
